import axios from 'axios'

// 创建 axios 实例
const api = axios.create({
  baseURL: 'http://localhost:3001/api',
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json'
  }
})

// 请求拦截器
api.interceptors.request.use(
  config => {
    console.log(`🚀 API请求: ${config.method?.toUpperCase()} ${config.url}`)
    return config
  },
  error => {
    console.error('❌ API请求错误:', error)
    return Promise.reject(error)
  }
)

// 响应拦截器
api.interceptors.response.use(
  response => {
    console.log(`✅ API响应: ${response.config.url}`, response.data)
    return response.data
  },
  error => {
    console.error('❌ API响应错误:', error.response?.data || error.message)
    
    // 处理常见错误
    if (error.code === 'ECONNREFUSED') {
      console.error('🚫 无法连接到API服务器，请确保后端服务器已启动')
      alert('无法连接到服务器，请稍后再试')
    }
    
    return Promise.reject(error)
  }
)

// API接口封装
export const ApiService = {
  // 领养案例相关
  async getAdoptionCases(params = {}) {
    return await api.get('/adoption-cases', { params })
  },
  
  async getAdoptionCase(id) {
    return await api.get(`/adoption-cases/${id}`)
  },
  
  // 宠物知识相关
  async getPetKnowledge(params = {}) {
    return await api.get('/pet-knowledge', { params })
  },
  
  // 宠物新闻相关
  async getPetNews(params = {}) {
    return await api.get('/pet-news', { params })
  },
  
  // 文章详情
  async getArticle(id) {
    return await api.get(`/articles/${id}`)
  },
  
  // 救助案例相关
  async getRescueCases(type) {
    return await api.get(`/rescue-cases/${type}`)
  },
  
  // 留言板相关
  async getGuestbook() {
    return await api.get('/guestbook')
  },
  
  async submitGuestbook(formData) {
    return await api.post('/guestbook', formData)
  },
  
  // 联系信息
  async getContactInfo() {
    return await api.get('/contact-info')
  },
  
  // 网站配置
  async getSiteConfig() {
    return await api.get('/site-config')
  },
  
  // 健康检查
  async healthCheck() {
    return await api.get('/health')
  }
}

// 导出axios实例供其他模块使用
export default api
